package com.hudson.common.enums;

/**
 * @Author: 渔小鲤
 * @DateTime: 2025/7/19 2:38
 **/
public enum MessageTypeEnum {
    // 心跳消息
    IDLE_MESSAGE("idle-message"),
    // 获取broker的topic队列
    QUEUE_MAP("queue_map"),
    // 生产者发送数据请求
    SEND_MESSAGE_REQ("send-message-req"),
    SEND_RELAY_MESSAGE_REQ("send-relay-message-req"),
    // 生产者发送数据响应
    SEND_MESSAGE_RESP("send-message-resp"),
    // 消费者push模式拉取数据请求
    PUSH_MESSAGE_REQ("push-message-req"),
    // 消费者push模式拉取数据响应
    PUSH_MESSAGE_RESP("push-message-resp"),
    // broker发送元数据
    BROKER_INFO_MESSAGE("broker-info-message"),
    // 获取broker信息
    GET_BROKER_INFO("get-broker-info"),
    // 默认成功消息
    SUCCESS_MESSAGE("success"),
    // 添加topic,并添加默认队列
    ADD_TOPIC_QUEUE("add-topic-queue"),
    // 消费者重试消息
    CONSUMER_RETRY_MESSAGE("consumer-retry-message");

    private final String type;

    MessageTypeEnum(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public static MessageTypeEnum fromType(String type) {
        for (MessageTypeEnum t : values()) {
            if (t.getType().equals(type)) {
                return t;
            }
        }
        throw new IllegalArgumentException("Unknown message type: " + type);
    }
}
